package com.javaweb.db.help;

import java.util.List;

import com.javaweb.enums.DbTypeEnum;

import lombok.Getter;
import lombok.Setter;

/**
 * 构建SQL需要的信息
 * @author tank2140896
 */
@Getter
@Setter
public class SqlBuildInfo {
	
	/**
	 * 实体类属性名称列表
	 * <p>
	 * 与entityValueList、columnList、canUpdateSetEmptyList一一对应
	 */
	private List<String> entityList;
	
	/**
	 * 实体类属性值
	 * <p>
	 * 与entityList、columnList、canUpdateSetEmptyList一一对应
	 */
	private List<Object> entityValueList;
	
	/**
	 * 实体类对应表字段名称
	 * <p>
	 * 与entityList、entityValueList、canUpdateSetEmptyList一一对应
	 */
	private List<String> columnList;
	
	/**
	 * 更新时是否能设置NULL或者空
	 * <p>
	 * 与entityList、entityValueList、columnList一一对应
	 */
	private List<Boolean> canUpdateSetEmptyList;
	
	/**
	 * 参数值
	 * <p>
	 * 目前本项目涉及的都是一个参数，因此没用List<Object>来处理
	 */
	private Object parameterValue;
	
	/**
	 * 表名
	 */
	private String tableName;

	/**
	 * 主键名称
	 * <p>
	 * 目前本项目只支持单主键
	 */
	private String pk;
	
	/**
	 * 主键是否自增
	 */
	private Boolean pkGenerate;
	
	/**
	 * 自动生成ID的名称
	 */
	private String id;

	/**
	 * ID是否自动生成
	 */
	private Boolean idAutoCreate;

	/**
	 * 数据库类型
	 * @see DbTypeEnum
	 */
	private DbTypeEnum dbTypeEnum;
	
}
